// index.js
const storageManager = require('../../manager/storageManager').getInstance();
Page({
  data: {
    // 系统公告相关数据
    hasNewNotice: true, // 默认显示公告，实际应用中应该从服务器获取
    noticeContent: '',
    noticeDate: new Date().toLocaleDateString(),
    // 胶囊区高度相关数据
    capsuleHeight: 0,
    statusBarHeight: 0,
    // 新手引导相关数据
    showTourGuide: false,
    currentTourStep: 0,
    tourSteps: [
      {
        title: '欢迎来到拾刻学习！',
        content: '这是一款专为中小学生设计的英语单词学习应用，让学习变得有趣又高效！',
        position: 'center',
        pulse: false
      },
      {
        title: '系统公告',
        content: '查看最新的系统公告和活动信息，不要错过重要通知！',
        selector: '.guide-notice-icon-target',
        position: 'bottom',
        pulse: true
      },
      {
        title: 'AI学习助手',
        content: '智能对话帮助你学习，还有有趣的串词成文功能哦！',
        selector: '#aiLearningCard',
        position: 'top',
        pulse: true
      },
      {
        title: '单词随身听',
        content: '点击这里可以随时听单词发音，帮助你记忆单词的正确读音。',
        selector: '#wordListening',
        position: 'top',
        pulse: true
      },
      {
        title: '快速复习',
        content: '快速复习之前学过的单词，巩固记忆，加深理解。',
        selector: '#quickReviewComponent',
        position: 'top',
        pulse: true
      },
      {
        title: '今日任务',
        content: '每天完成系统推荐的学习任务，保持学习进度。',
        selector: '#todayTasks',
        position: 'top',
        pulse: true
      },
      {
        title: '学习单元',
        content: '从这里进入学习不同的单词分类，按分类学习单词。',
        selector: '#unitEntry',
        position: 'bottom',
        pulse: true
      }
    ]
  },
  onLoad() {
    // 获取胶囊区高度和状态栏高度
    this.getCapsuleInfo();
    
    // 实际应用中，这里应该从服务器获取最新公告
    // 模拟获取公告
    this.fetchSystemNotice();
    
    // 检查是否需要显示新手引导
    this.checkAndShowTourGuide();
  },
  
  // 获取胶囊区信息
  getCapsuleInfo() {
    // 获取系统信息
    const systemInfo = wx.getSystemInfoSync();
    // 获取状态栏高度
    const statusBarHeight = systemInfo.statusBarHeight;
    
    // 获取胶囊区信息
    const menuButtonInfo = wx.getMenuButtonBoundingClientRect();
    
    // 计算胶囊区的上下间距（通常为胶囊按钮与状态栏和底部的间距）
    const topSpacing = menuButtonInfo.top - statusBarHeight;
    const bottomSpacing = topSpacing; // 上下间距通常相等
    
    // 计算包含上下间距的胶囊区总高度
    const capsuleHeight = statusBarHeight + topSpacing + menuButtonInfo.height + bottomSpacing;
    
    // 计算胶囊按钮的垂直中心位置
    const capsuleCenterY = menuButtonInfo.top + menuButtonInfo.height / 2;
    
    this.setData({
      capsuleHeight: capsuleHeight,
      statusBarHeight: statusBarHeight,
      topSpacing: topSpacing,
      bottomSpacing: bottomSpacing,
      capsuleCenterY: capsuleCenterY,
      menuButtonHeight: menuButtonInfo.height
    });
    
    // 将胶囊区高度设置到页面样式中
    wx.setNavigationBarColor({
      frontColor: '#ffffff',
      backgroundColor: '#845EC2'
    });
  },
  // 获取系统公告
  fetchSystemNotice() {
    // 调用云函数获取系统公告
    wx.cloud.callFunction({
      name: 'getSystemNotice',
      success: res => {
        console.log('获取系统公告成功:', res.result);
        if (res.result.success && res.result.data) {
          const content = res.result.data;
          this.setData({
            hasNewNotice: !!content,
            noticeContent: content.replace(/\\n/g, '\n')
          });
        }
      },
      fail: err => {
        console.error('获取系统公告失败:', err);
      }
    });
  },
  // 点击公告
  onNoticeClick(e) {
    console.log('公告被点击:', e.detail);
    wx.showModal({
      title: '系统公告',
      content: e.detail.content,
      showCancel: false
    });
  },
  // 关闭公告
  onNoticeClose() {
    console.log('公告被关闭');
    // 可以在这里记录用户已关闭公告
  },
  // 点击导航栏公告图标
  onNoticeIconClick() {
    console.log('公告图标被点击');
    wx.showModal({
      title: '系统公告',
      content: this.data.noticeContent,
      showCancel: false
    });
  },
  // 页面显示时（包括返回首页）调用
  onShow() {
    // 刷新复习数量
    const quickReview = this.selectComponent('#quickReviewComponent');
    if (quickReview && quickReview.loadReviewCount) {
      quickReview.loadReviewCount();
    }
  },
  // scroll-view滚动处理
  onScrollViewScroll(e) {
    const pageHeader = this.selectComponent('.page-header');
    if (pageHeader && pageHeader.handlePageScroll) {
      pageHeader.handlePageScroll(e.detail);
    }
  },
  
  // 转发给朋友
  onShareAppMessage: function() {
    return {
      title: '拾刻学习 - 让英语学习更高效',
      path: '/pages/index/index',
      // imageUrl: '/images/cover.png'
    };
  },
  
  // 分享到朋友圈
  onShareTimeline: function() {
    return {
      title: '拾刻学习 - 让英语学习更高效',
      query: 'from=timeline',
      // imageUrl: '/images/cover.png'
    };
  },
  
  // 检查并显示新手引导
  checkAndShowTourGuide: function() {
    try {
      const hasCompleted = storageManager.getStorage(storageManager.STORAGE_KEYS.TOUR_GUIDE_COMPLETED);
      // 如果没有完成过引导，或者强制重新显示（可以通过URL参数控制）
      const forceShow = this.options.showTour === 'true';
      if (!hasCompleted || forceShow) {
        // 延迟显示，确保页面元素都已渲染完成
        setTimeout(() => {
          this.setData({ showTourGuide: true });
        }, 500);
      }
    } catch (error) {
      console.error('检查新手引导状态失败:', error);
    }
  },
  
  // 引导步骤改变
  onTourStepChange: function(e) {
    const { currentIndex } = e.detail;
    this.setData({ currentTourStep: currentIndex });
  },
  
  // 引导完成
  onTourFinish: function(e) {
    console.log('新手引导完成');
    this.setData({ showTourGuide: false });
    
    // 可以在这里添加引导完成后的操作，如显示欢迎弹窗等
    wx.showToast({
      title: '欢迎开始学习之旅！',
      icon: 'success'
    });
  },
  
  // 引导跳过
  onTourSkip: function(e) {
    console.log('新手引导跳过');
    this.setData({ showTourGuide: false });
    // 保存跳过新手引导的状态
    storageManager.setStorage('hasSkippedTourGuide', true);
  },
  
  // 手动重新显示引导（可以通过某个按钮触发）
  showTourGuideAgain: function() {
    this.setData({ 
      showTourGuide: true,
      currentTourStep: 0
    });
  }
})
